# Test for advanced contour deformation options.
# Input file for GW calculation
ndtset 10 # Total number of datasets
#jdtset 1 2 3 4 5 6 7 8 9 10 # Specification of datasets
# List of datasets
# DS1 : Density file
# DS2 : Shifted wavefunctions
# DS3 : Unshifted wavefunctions
# DS4 : Calculation of the screening (inzgrid)
# DS5 : Calculation of the screening (default w freqim_alpha)
# DS6,7,8,9i,10 : Calculation of the self-energy
# at Gamma for several different CD methods
#===========================================
# THE INPUT VARIABLES IN THIS SECTION ARE
# THE SAME FOR ALL DATASETS
#===========================================
enunit 0 # Units only in Hartrees
#Definition of the unit cell
acell 3*10.18 # This is equivalent to 10.18 10.18 10.18
rprim 0.0 0.5 0.5
0.5 0.0 0.5
0.5 0.5 0.0
#Definition of the atom types
ntypat 1 # There are two type of atom
znucl 14 # Si (Silicon)
#Definition of the atoms
natom 2 # There are four atoms in total (2xZnO)
typat 1 1
xred # This keyword indicate that the location of the atoms
# will follow, one triplet of number for each atom
-1/8 -1/8 -1/8
1/8 1/8 1/8
#Definition of the planewave basis set
ecut 6.0 Ha # Maximal kinetic energy cut-off, in Hartree
ecutsm 0.5 # Introduce a smooth cutoff within
# an 0.5 Ha region
optforces 0 # Do not calculate forces
#------ BEGIN DATASETS --------
#-------------------------------------------------------
# DATASET 1: CALCULATION OF THE DENSITY FILE
#-------------------------------------------------------
prtden1 1 # Output the density
nband1 10 # Specify slightly more than the occupied bands
# to help convergence
nbdbuf1 2 # Don't worry about the precise convergence of
# the last three bands
# Definition of the k-point grid
# In the calculation of the density, this is shifted
kptopt1 1 # Option for the automatic generation of k
# points, taking into account the symmetry
kptrlatt1 2 2 -2 #k-point lattice
-2 2 -2
-2 2 2
nshiftk1 1 # Number of shifts of k-point grid
shiftk1 0.5 0.5 0.5 # Shift of k-point grid
# If you want info on k-point grids, turn these on and
# the above four keywords off, then run just dataset 1
#prtkpt1 1
#kptrlen1 80.
#Definition of the SCF procedure
nstep1 10 # Maximal number of SCF cycles
tolvrs1 1.0d-16 # Stopping criterion on residual of potential
diemac1 12.0 # Preconditioning of SCF cycle
#--------------------------------------------------
#--------------------------------------------------
# DATASET 2: CALCULATION OF WAVEFUNCTIONS (shifted k grid)
#--------------------------------------------------
nband2 22 # Number of bands to be computed
nbdbuf2 2 # Buffer of a extra states for convergence
iscf2 -2 # Read the density and only calculate wavefunctions
# i.e. the density is frozen
getden2 1 # Use the previously calculated _DEN file
# dataset 1
#getwfk2 2 # Uncomment this if you want to restart
# from a previous wfk calculation
istwfk2 *1 # Do not use symmetry in wfk storage
# Definition of the k-point grid
kptopt2 1 # Option for the automatic generation of k
# points, taking into account the symmetry
kptrlatt2 2 2 -2 #k-point lattice
-2 2 -2
-2 2 2
nshiftk2 1 # Number of shifts of k-point grid
shiftk2 0.5 0.5 0.5 # Set shift
#Definition of the SCF procedure
nstep2 20 # Maximal number of SCF or non-SCF cycles
tolwfr2 1.0d-21 # For response function calculations
# the wavefunctions need to be highly
# converged. (10^-21-10^-23)
#--------------------------------------------------
#--------------------------------------------------
# DATASET 3: CALCULATION OF WAVEFUNCTIONS (unshifted k grid)
#--------------------------------------------------
nband3 22 # Number of bands to be computed
nbdbuf3 2 # Buffer of a extra states for convergence
iscf3 -2 # Read the density and only calculate wavefunctions
# i.e. the density is frozen
getden3 1 # Use the previously calculated _DEN file
# dataset 1
#getwfk2 2 # Uncomment this if you want to restart
# from a previous wfk calculation
istwfk3 *1 # Do not use symmetry in wfk storage
# Definition of the k-point grid
kptopt3 1 # Option for the automatic generation of k
# points, taking into account the symmetry
kptrlatt3 2 2 -2 #k-point lattice
-2 2 -2
-2 2 2
nshiftk3 1 # Number of shifts of k-point grid
shiftk3 0.0 0.0 0.0 # Set shift
#Definition of the SCF procedure
nstep3 20 # Maximal number of SCF or non-SCF cycles
tolwfr3 1.0d-21 # For response function calculations
# the wavefunctions need to be highly
# converged. (10^-21-10^-23)
#--------------------------------------------------
#--------------------------------------------------
# DATASET 4: CALCULATION OF THE SCREENING (inzgid test)
#--------------------------------------------------
optdriver4 3 # Do a standard (one-shot) screening calculation
gwcalctyp4 2 # Do Contour Deformation integration
gwpara4 2 # Use parallellism over bands
nband4 20 # Number of bands to be read in from _KSS
# A screening calculation parallelises over the
# number of unoccupied bands, so 96-6=90 in this case
# Good combinations of processors:
# 2 proc: 90/2 = 45 each
# 3 proc: 90/3 = 30 each
# 5 proc: 90/5 = 18 each, etc...
istwfk4 *1 # No symmetry in wfk storage
getwfk4 2 # Get KSS file from dataset 2 (SHIFTED k-grid)
ecuteps4 1.5 Ha # Cut-off energy of plane waves set to represent
# the screening matrix (usually much less than for
# the wavefunctions) This is the most expensive
# parameter since the time scales as the cube of this
ecutwfn4 6. # Cut off for the wavefunctions used in the screening
# (usually same as ecut, but you can test lowering it)
inclvkb4 2 # Fast and accurate calculation of certain matrix elements
awtr4 1 # Use time-reversal symmetry
symchi4 1 # Use crystal symmetries in calc. of Chi
kptrlatt4 2 2 -2 #k-point lattice
-2 2 -2
-2 2 2
nshiftk4 1 # Number of shifts of k-point grid
shiftk4 0.5 0.5 0.5 # Set shift
gwmem4 11 # Set to 00 for memory-saving in screening calc.
# Frequency treatment (equidistant grid in real frequency,
# The maximum frequency needs to be higher than the difference
# between biggest included quasiparticle energy and the
# highest transition energy
gw_frqim_inzgrid4 1 # Use inverse-z grids
gw_frqre_inzgrid4 1 # NOTE: This grid is activated here just
# so that the input variable is tested
# it is *NOT* efficient to use this along the
# real axis for practical Contour Deformation
# calculations. (See the documentation)
nfreqre4 8
nfreqim4 8
ppmfrq4 26. eV # This overrides the default
# plasma frequency and affects the grid
# distribution (See the documentation)
icutcoul4 3 # old deprecated value of icutcoul, only used for legacy
#--------------------------------------------------
#--------------------------------------------------
# DATASET 5: CALCULATION OF THE SCREENING (freqim_alpha test)
#--------------------------------------------------
optdriver5 3 # Do a standard (one-shot) screening calculation
gwcalctyp5 2 # Do Contour Deformation integration
gwpara5 2 # Use parallellism over bands
nband5 20 # Number of bands to be read in from _KSS
# A screening calculation parallelises over the
# number of unoccupied bands, so 96-6=90 in this case
# Good combinations of processors:
# 2 proc: 90/2 = 45 each
# 3 proc: 90/3 = 30 each
# 5 proc: 90/5 = 18 each, etc...
istwfk5 *1 # No symmetry in wfk storage
getwfk5 2 # Get KSS file from dataset 2 (SHIFTED k-grid)
ecuteps5 1.5 Ha # Cut-off energy of plane waves set to represent
# the screening matrix (usually much less than for
# the wavefunctions) This is the most expensive
# parameter since the time scales as the cube of this
ecutwfn5 6. # Cut off for the wavefunctions used in the screening
# (usually same as ecut, but you can test lowering it)
inclvkb5 2 # Fast and accurate calculation of certain matrix elements
awtr5 1 # Use time-reversal symmetry
symchi5 1 # Use crystal symmetries in calc. of Chi
kptrlatt5 2 2 -2 #k-point lattice
-2 2 -2
-2 2 2
nshiftk5 1 # Number of shifts of k-point grid
shiftk5 0.5 0.5 0.5 # Set shift
gwmem5 11 # Set to 00 for memory-saving in screening calc.
# Frequency treatment (equidistant grid in real frequency,
# The maximum frequency needs to be higher than the difference
# between biggest included quasiparticle energy and the
# highest transition energy
nfreqre5 8
nfreqim5 8
freqim_alpha5 6.0
ppmfrq5 26. eV # This overrides the default
# plasma frequency and affects the grid
# distribution (See the documentation)
#--------------------------------------------------
#--------------------------------------------------
# DATASET 5: CALCULATION OF THE SELF-ENERGY (SIGMA)
# CORRECTION AT GAMMA
#--------------------------------------------------
optdriver6 4 # Do a sigma calculation
gwcalctyp6 2 # Do Contour Deformation integration
gwpara6 2 # Use parallellism over bands
nband6 20 # The *full* number of bands is parallelised over the procs
istwfk6 *1 # Wavefunction storage type one, for each
# irreducible k-point
getwfk6 3 # Get KSS file from dataset 3 (unshifted k-points)
getscr6 5 # Read screening (_SCR) file from dataset 5
ecuteps6 1.5 Ha # This sets the cut-off energy for
# the correlation part. Can max be what was
# set in dataset 6
ecutwfn6 6. Ha # Cut-off energy of pw set to represent wfk
ecutsigx6 6. Ha # Cut-off energy of pw sum in Sigma
symsigma6 1 # Use crystal symmetries in calc. of Chi
# k-point grid of wavefunctions
kptrlatt6 2 2 -2 #k-point lattice
-2 2 -2
-2 2 2
nshiftk6 1 # Number of shifts of k-point grid
shiftk6 0.0 0.0 0.0 # Set zero shift
# Definition of k-points to calc. for GW
nkptgw6 1 # Number of k-points
kptgw6 # List of k-points for GW correction
0.0 0.0 0.0 # Gamma point
bdgw6 1 7 # start/stop bands
gwmem6 11 # Set to 00 for memory-saving in sigma calc.
icutcoul6 3 # old deprecated value of icutcoul, only used for legacy
#--------------------------------------------------
#--------------------------------------------------
# DATASET 7: CALCULATION OF THE SELF-ENERGY (SIGMA)
# CORRECTION AT GAMMA (TRAPEZOID)
#--------------------------------------------------
optdriver7 4 # Do a sigma calculation
gwcalctyp7 2 # Do Contour Deformation integration
cd_frqim_method7 2 # Use TRAPEZOID integration
gwpara7 2 # Use parallellism over bands
nband7 20 # The *full* number of bands is parallelised over the procs
istwfk7 *1 # Wavefunction storage type one, for each
# irreducible k-point
getwfk7 3 # Get KSS file from dataset 3 (unshifted k-points)
getscr7 4 # Read screening (_SCR) file from dataset 6
ecuteps7 1.5 Ha # This sets the cut-off energy for
# the correlation part. Can max be what was
# set in dataset 6
ecutwfn7 6. Ha # Cut-off energy of pw set to represent wfk
ecutsigx7 6. Ha # Cut-off energy of pw sum in Sigma
symsigma7 1 # Use crystal symmetries in calc. of Chi
# k-point grid of wavefunctions
kptrlatt7 2 2 -2 #k-point lattice
-2 2 -2
-2 2 2
nshiftk7 1 # Number of shifts of k-point grid
shiftk7 0.0 0.0 0.0 # Set zero shift
# Definition of k-points to calc. for GW
nkptgw7 1 # Number of k-points
kptgw7 # List of k-points for GW correction
0.0 0.0 0.0 # Gamma point
bdgw7 1 7 # start/stop bands
gwmem7 11 # Set to 00 for memory-saving in sigma calc.
ppmfrq7 26. eV
icutcoul7 3 # old deprecated value of icutcoul, only used for legacy
#--------------------------------------------------
#--------------------------------------------------
# DATASET 8: CALCULATION OF THE SELF-ENERGY (SIGMA)
# CORRECTION AT GAMMA (NSPLINE)
#--------------------------------------------------
optdriver8 4 # Do a sigma calculation
gwcalctyp8 2 # Do Contour Deformation integration
cd_frqim_method8 3 # Use NSPLINE integration
gwpara8 2 # Use parallellism over bands
nband8 20 # The *full* number of bands is parallelised over the procs
istwfk8 *1 # Wavefunction storage type one, for each
# irreducible k-point
getwfk8 3 # Get KSS file from dataset 3 (unshifted k-points)
getscr8 4 # Read screening (_SCR) file from dataset 4
ecuteps8 1.5 Ha # This sets the cut-off energy for
# the correlation part. Can max be what was
# set in dataset 6
ecutwfn8 6. Ha # Cut-off energy of pw set to represent wfk
ecutsigx8 6. Ha # Cut-off energy of pw sum in Sigma
symsigma8 1 # Use crystal symmetries in calc. of Chi
# k-point grid of wavefunctions
kptrlatt8 2 2 -2 #k-point lattice
-2 2 -2
-2 2 2
nshiftk8 1 # Number of shifts of k-point grid
shiftk8 0.0 0.0 0.0 # Set zero shift
# Definition of k-points to calc. for GW
nkptgw8 1 # Number of k-points
kptgw8 # List of k-points for GW correction
0.0 0.0 0.0 # Gamma point
bdgw8 1 7 # start/stop bands
gwmem8 11 # Set to 00 for memory-saving in sigma calc.
ppmfrq8 26. eV
icutcoul8 3 # old deprecated value of icutcoul, only used for legacy
#--------------------------------------------------
#--------------------------------------------------
# DATASET 9: CALCULATION OF THE SELF-ENERGY (SIGMA)
# CORRECTION AT GAMMA
#--------------------------------------------------
optdriver9 4 # Do a sigma calculation
gwcalctyp9 2 # Do Contour Deformation integration
cd_frqim_method9 4 # Use NSPLINE integration (level 2)
gwpara9 2 # Use parallellism over bands
nband9 20 # The *full* number of bands is parallelised over the procs
istwfk9 *1 # Wavefunction storage type one, for each
# irreducible k-point
getwfk9 3 # Get KSS file from dataset 3 (unshifted k-points)
getscr9 4 # Read screening (_SCR) file from dataset 6
ecuteps9 1.5 Ha # This sets the cut-off energy for
# the correlation part. Can max be what was
# set in dataset 6
ecutwfn9 6. Ha # Cut-off energy of pw set to represent wfk
ecutsigx9 6. Ha # Cut-off energy of pw sum in Sigma
symsigma9 1 # Use crystal symmetries in calc. of Chi
# k-point grid of wavefunctions
kptrlatt9 2 2 -2 #k-point lattice
-2 2 -2
-2 2 2
nshiftk9 1 # Number of shifts of k-point grid
shiftk9 0.0 0.0 0.0 # Set zero shift
# Definition of k-points to calc. for GW
nkptgw9 1 # Number of k-points
kptgw9 # List of k-points for GW correction
0.0 0.0 0.0 # Gamma point
bdgw9 1 7 # start/stop bands
gwmem9 11 # Set to 00 for memory-saving in sigma calc.
ppmfrq9 26. eV
icutcoul9 3 # old deprecated value of icutcoul, only used for legacy
#--------------------------------------------------
#--------------------------------------------------
# DATASET 10: CALCULATION OF THE SELF-ENERGY (SIGMA)
# CORRECTION AT GAMMA
#--------------------------------------------------
optdriver10 4 # Do a sigma calculation
gwcalctyp10 2 # Do Contour Deformation integration
cd_frqim_method10 5 # Use NSPLINE integration (level 3)
gwpara10 2 # Use parallellism over bands
nband10 20 # The *full* number of bands is parallelised over the procs
istwfk10 *1 # Wavefunction storage type one, for each
# irreducible k-point
getwfk10 3 # Get KSS file from dataset 3 (unshifted k-points)
getscr10 4 # Read screening (_SCR) file from dataset 4
ecuteps10 1.5 Ha # This sets the cut-off energy for
# the correlation part. Can max be what was
# set in dataset 6
ecutwfn10 6. Ha # Cut-off energy of pw set to represent wfk
ecutsigx10 6. Ha # Cut-off energy of pw sum in Sigma
symsigma10 1 # Use crystal symmetries in calc. of Chi
# k-point grid of wavefunctions
kptrlatt10 2 2 -2 #k-point lattice
-2 2 -2
-2 2 2
nshiftk10 1 # Number of shifts of k-point grid
shiftk10 0.0 0.0 0.0 # Set zero shift
# Definition of k-points to calc. for GW
nkptgw10 1 # Number of k-points
kptgw10 # List of k-points for GW correction
0.0 0.0 0.0 # Gamma point
bdgw10 1 7 # start/stop bands
gwmem10 11 # Set to 00 for memory-saving in sigma calc.
ppmfrq10 26. eV
icutcoul10 3 # old deprecated value of icutcoul, only used for legacy
#--------------------------------------------------
## After modifying the following section, one might need to regenerate the pickle database with runtests.py -r
#%%
#%% [setup]
#%% executable = abinit
#%% [files]
#%% files_to_test =
#%% t22.out, tolnlines = 600, tolabs = 1.1e-2, tolrel = 6.0e-2, fld_options = -medium
#%% psp_files = 14si.pspnc
#%% [paral_info]
#%% max_nprocs = 2
#%% [extra_info]
#%% authors = M. Stankovski
#%% keywords = GW
#%% description =
#%% Test new integration method and grid options for the integral
#%% along the imaginary axis in contour deformation calculations.
#%%